package com.example.repository;

import com.example.pojo.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

// @Repository注解用于标注数据访问组件,即DAO组件
// 1. 标识这是一个数据访问层的Bean
// 2. 可以被Spring框架自动扫描识别
// 3. 可以将数据库操作抛出的异常转换为Spring的DataAccessException


// IUserRepository接口继承自CrudRepository接口，是Spring Data JPA提供的核心接口之一
// CrudRepository<User,Integer>中的泛型参数:
// - User: 实体类的类型，表示这个Repository要操作的实体类
// - Integer: 实体类主键的类型，对应User类中@Id注解标注的字段类型
// 通过继承CrudRepository，IUserRepository自动获得基础的CRUD(增删改查)操作方法:
// - save(): 保存实体对象
// - findById(): 根据ID查询
// - findAll(): 查询所有
// - delete(): 删除实体
// - count(): 统计实体数量
// 等等...

@Repository
public interface IUserRepository extends CrudRepository<User,Integer> {

}
